#include<bits/stdc++.h>
using namespace std;
int n;
char a[2][10000005];
bool vis[2][10000005];
int fx[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int Y=-1,s=0;
long long sum=0;
bool pan(int x,int y)
{
	if(x<0||x>=2||y<0||y>=n)
	{
		return 0;
	}
	if(a[x][y]!='#'||vis[x][y]!=0)
	{
		return 0;
	}
	return 1;
}
void dfs(int x,int y)
{
	if(y>Y)
	{
		Y=y;
		if(x==0)
		s=1;
		else if(x==1)
		{
			s=2;
		}
	}
	else if(y==Y)
	{
		s=3;
	}
	for(int i=0;i<4;i++)
	{
		int xx=x+a[i][0],yy=y+a[i][1];
		if(pan(xx,yy))
		{
			vis[xx][yy]=1;
			dfs(xx,yy);
		}
	}
}
void so()
{
	string s1,s2;
	cin>>s1>>s2;
	n=s1.size();
	for(int i=0;i<n;i++)
	{
		a[0][i]=s1[i];
		a[1][i]=s2[i];
	}
	for(int i=0;i<n;i++)
	{
		if(a[0][i]=='#'&&vis[0][i]==0)
		{
			if(a[1][i]=='#'&&Y!=-1)
			{
				sum+=i-Y-1;
			}
			else if(Y!=-1)
			{
				if(s==3||s==1)
				{
					sum+=i-Y-1;
				}
				else 
				{
					sum+=i-Y;
				}
			}
			vis[0][i]=1;
			dfs(0,i);
		}
		else if(a[1][i]=='#'&&vis[1][i]==0)
		{
			if(Y!=-1)
			{
				if(s==3||s==2)
				{
					sum+=i-Y-1;
				}
				else 
				{
					sum+=i-Y;
				}
			}
			vis[1][i]=1;
			dfs(1,i);
		}	
	}
	cout<<sum<<endl;
	return ;
}
int main()
{
	int t=1;
	//cin>>t;
	while(t--)
	{
		so();	
	}
	
	return 0;
 } 
